Skip to content

audit: classify 2 PA021 legitimate mathematical axioms (funext + Conflicts)#107

Merged
hyperpolymath merged 2 commits into
mainfrom
panic-fix/PA021-legitimate-axioms
May 26, 2026
Merged

audit: classify 2 PA021 legitimate mathematical axioms (funext + Conflicts)#107
hyperpolymath merged 2 commits into
mainfrom
panic-fix/PA021-legitimate-axioms

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

panic-attack assail reports 2 PA021 ProofDrift findings in this repo. Both are postulates with inline justification — neither is a proof debt.

  • proofs/agda/Basic.agda:177funext (function extensionality). Standard HoTT axiom; Coq has FunctionalExtensionality.functional_extensionality, Lean has funext. Provable in Cubical Agda; postulated in plain Agda.
  • proofs/agda/SoundnessPreservation.agda:51Conflicts. INTENTIONAL parameter (abstract binary predicate); theorem interface, not debt.

What changes

  • audits/assail-classifications.a2ml — 2 entries
  • audits/audit-pa021-axioms-2026-05-26.md

Verification

No proof source touched; agda --check rebuild is moot (input unchanged from main).

Refs hyperpolymath/panic-attack#32.

🤖 Generated with Claude Code

hyperpolymath and others added 2 commits May 26, 2026 10:14
Two Agda postulates flagged by PA021, both with inline justification:

  proofs/agda/Basic.agda: funext (function extensionality) — HoTT-standard
    axiom; Coq's FunctionalExtensionality, Lean's funext, HoTT Axiom 2.9.3.
    Provable in Cubical Agda; postulated in plain Agda.

  proofs/agda/SoundnessPreservation.agda: Conflicts is an INTENTIONAL
    parameter (abstract binary predicate); the caller supplies a concrete
    proof of ¬ Conflicts at use-site. Theorem interface, not debt.

Adds:
- audits/assail-classifications.a2ml (entries=2)
- audits/audit-pa021-axioms-2026-05-26.md

Anti-gameability: only these two postulates suppressed; new postulates in
these or other proof files remain visible.

Refs hyperpolymath/panic-attack#32 (estate sweep tracker).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Previous commit on this branch overwrote the existing 14 FFI-boundary
classification entries in audits/assail-classifications.a2ml. This commit
restores them in full and re-appends the 2 new PA021 entries.

No-op semantically vs the intended PR state, but corrects the diff.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 166 issues detected

Severity Count
🔴 Critical 14
🟠 High 78
🟡 Medium 74

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Workflow executes remote script directly (curl/wget piped to shell). Download, verify checksum/signature, then execute.",
    "type": "download_then_run",
    "file": "mirror.yml",
    "action": "verify_download_integrity",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
    "type": "agda_postulate",
    "file": "/home/runner/work/echidna/echidna/proofs/agda/Basic.agda",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "Agda postulate assumes without proof -- potential soundness hole (2 occurrences, CWE-704)",
    "type": "agda_postulate",
    "file": "/home/runner/work/echidna/echidna/proofs/agda/SoundnessPreservation.agda",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "Agda postulate assumes without proof -- potential soundness hole (1 occurrences, CWE-704)",
    "type": "agda_postulate",
    "file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "UNSOUND: --type-in-type collapses type hierarchy (Girard's paradox) (1 occurrences, CWE-704)",
    "type": "agda_type_in_type",
    "file": "/home/runner/work/echidna/echidna/meta-checker/src/Echidna/AxiomSafety.agda",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "critical"
  },
  {
    "reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
    "type": "lean_axiom",
    "file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/IntegrityVerification.lean",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
    "type": "lean_axiom",
    "file": "/home/runner/work/echidna/echidna/verification/proofs/lean4/ConfidenceLattice.lean",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
    "type": "lean_axiom",
    "file": "/home/runner/work/echidna/echidna/proofs/lean/mvp_basic.lean",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "User-defined axiom -- not verified by Lean kernel (1 occurrences, CWE-704)",
    "type": "lean_axiom",
    "file": "/home/runner/work/echidna/echidna/proofs/lean/Propositional.lean",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  },
  {
    "reason": "Nickel file missing SPDX-License-Identifier header (1 occurrences, CWE-1104)",
    "type": "ncl_missing_spdx",
    "file": "/home/runner/work/echidna/echidna/configs/config.ncl",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath enabled auto-merge (squash) May 26, 2026 09:20
@hyperpolymath
hyperpolymath merged commit 2b59fb8 into main May 26, 2026
38 of 43 checks passed
@hyperpolymath
hyperpolymath deleted the panic-fix/PA021-legitimate-axioms branch May 26, 2026 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant